package br.com.tarcilahelpdesk.managedBeans;

import br.com.tarcilahelpdesk.enums.EnumObjetosPersistentes;
import br.com.tarcilahelpdesk.modelo.Modelo;
import br.com.tarcilahelpdesk.persistencia.Chamado;
import br.com.tarcilahelpdesk.util.HibernateUtil;
import java.io.Serializable;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import org.hibernate.Session;
import org.primefaces.model.LazyDataModel;

/**
 * MB da Fila de Chamados.
 * @author vinicius.fonseca
 */
@ManagedBean(name = "fila")
@ViewScoped
public class FilaBean implements Serializable
{

    private Long idSelecionado;
    private LazyDataModel<Chamado> tabela;
    private Session ss;

    /**
     * Construtor - Abre a sessão do hibernate.
     */
    public FilaBean()
    {
        ss = HibernateUtil.getSessionFactory().openSession();
    }

    @PostConstruct
    public void inicializar()
    {
        tabela = Modelo.getInstancia().gerarLazyModelObjetoPersistente(EnumObjetosPersistentes.Chamado, ss);
    }

    /**
     * Encerra a sessão do hibernate na destruicao do bean.
     */
    @PreDestroy
    public void encerrar()
    {
        ss.close();
    }
    
    public String verChamado()
    {
        FacesContext.getCurrentInstance().getExternalContext().getFlash().put("idChamado", idSelecionado);
        return "dadoschamado";
    }

    //Getters e Setters
    public Long getIdSelecionado()
    {
        return idSelecionado;
    }

    public void setIdSelecionado(Long idSelecionado)
    {
        this.idSelecionado = idSelecionado;
    }

    public LazyDataModel<Chamado> getTabela()
    {
        return tabela;
    }

    public void setTabela(LazyDataModel<Chamado> tabela)
    {
        this.tabela = tabela;
    }
}
